package com.cetool.autocms.service.user;

import com.cetool.autocms.common.PageRequest;
import com.cetool.autocms.enumeration.OperateEnum;
import com.cetool.autocms.pojo.dto.user.UserInfoDTO;
import com.cetool.autocms.pojo.request.user.DeleteUserRequest;
import com.cetool.autocms.pojo.request.user.QueryUserListRequest;
import com.cetool.autocms.pojo.request.user.SaveUserRequest;
import com.cetool.autocms.pojo.request.user.UpdateUserRequest;
import com.github.pagehelper.PageSerializable;

/**
 * 用户信息服务接口层
 *
 * @author 戴越
 * @date 2021/11/9
 */
public interface UserService {

    /**
     * 新增管理员用户
     *
     * @param request 新增管理员用户请求实体
     * @author 戴越
     * @date 2021/11/9
     * @return 操作信息
     */
    OperateEnum saveUser(SaveUserRequest request);

    /**
     * 分页查询管理员用户信息列表
     *
     * @param request 分页查询管理员用户信息请求实体
     * @return 管理员用户信息分页列表
     * @author 戴越
     * @date 2021/11/10
     */
    PageSerializable<UserInfoDTO> listPageUser(PageRequest<QueryUserListRequest> request);

    /**
     * 删除管理员用户信息
     *
     * @param request 删除管理员用户信息请求实体
     * @return 操作信息
     * @author 戴越
     * @date 2021/11/10
     */
    OperateEnum deleteUser(DeleteUserRequest request);

    /**
     * 修改用户信息
     *
     * @param request 更新管理员用户请求实体
     * @return 操作信息
     * @author 戴越
     * @date 2021/11/10
     */
    OperateEnum updateUser(UpdateUserRequest request);

}
